const WebSocket = require('ws');
const url = require('url');
let webSocketServer = new WebSocket.Server({port: '8080'});

//服务和链接 长链接
// 可能有多个用户连接
let pool = new Map(); // 存储我们的连接用户
let idList = ['1', '2'];
webSocketServer.on('connection', (ws, req) => {
    let id = url.parse(req.url, true).query.id  // 解析获取我们url的参数
    console.log(id)
    console.log(req.headers['sec-websocket-protocol']) // 获取携带的参数
    if (idList.indexOf(id) == -1) {
        ws.send(JSON.stringify({
            type: 'error',
            mes: '不正确的'
        }))
        ws.close();
    }

    pool.set('connection' + id, ws)

    // nodejs的事件体系
    // 给前端发送一个消息
    ws.send(JSON.stringify({
        a: 123456
    }))
    ws.on('message', (mes) => {
        console.log(mes.toString())
        ws.send(JSON.stringify({
            type:'mes',
            mes:'收到'+ mes.toString()
        }))
    })
    ws.on('close', () => {
        console.log('关闭')
    })
    ws.on('error', () => {
        console.log('错误')
    })
})
